package com.xwtec.juc.c_000;

/**
 * @Author: zt
 * @Date: 2021/3/19 14:37
 */
public class T04_ThreadState {
    //new 新生状态

    //Runnable(被线程调度器执行，其中又分为2个状态。
    //           Ready------------->线程在一个等待队列中，等待cpu去执行
    //           Running------------->线程真正的被扔入cpu中去执行)
    //             线程被挂起（running-->Ready）
    //            Thread.yield方法执行时，线程状态会从running状态进入到ready状态

    //Terminated 线程运行结束了（思考：如果线程结束了，再通过start()方法，再去调用线程进入runnable状态呢？   -------->这个是不被允许的）

    //Blocked 阻塞状态 （如果一段代码用synchronized等修饰需要获得锁才能执行的，如果线程没有获得锁，就会进入Blocked状态，
    //                   如果获得了锁，就会进入Runnable状态）

    //Waiting 等待状态（如果一个线程调用了wait()方法、另一个线程的join()方法、 LockSupport.park() --------> 就会进入等待状态
    //                 如果线程调用了o.notify() o.notifyAll() LockSupport.unPark() 方法 就会进入Runnable状态）

    // TimedWaiting (按照时长去等待，时间结束自己回去  Thread.sleep(time) o.wait(time) t.join(time) LockSupport.parkNanos() LockSupport.parkUtil())


}
